package com.Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Consumer;

/**
 * 迭代器的原理
 */

public class Iterator_test {
    public static void main(String[] args) {
        Collection<String> list=new ArrayList<>();
        list.add("小明");
        list.add("小红");
        list.add("小朋");
        list.add("小有");
        //通过集合的iterator方法获得迭代器对象
        Iterator<String> iterator = list.iterator();
        //迭代器的next（）方法先获取当前元素内容，然后将对象移到下一个对象
//        System.out.println(iterator.next());
//        System.out.println(iterator.next());
//        System.out.println(iterator.next());
//        System.out.println(iterator.next());xian

//        使用循环输出，用迭代器的hasNext()方法
        //先判断当前位置是否有元素存在，要是有的话就输出，再将迭代器对象移到下一个位置
        //使用迭代器遍历集合
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        
        //使用foreach循环遍历集合
        for (String s : list) {
            System.out.println(s);
        }
        //使用foreach遍历数组
        double[]arr={1,2,3,4,5};
        for (double d:arr)
            System.out.println(d);

        //使用Lambda表达式遍历集合
        list.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });

        //简化代码
        list.forEach(s-> {System.out.println(s); });

        //还可以简化
        list.forEach(System.out::println);
    }
}
